Матч 15, Тир (ShootingGallery)

 

Вы поспорили с другом, что он не попадет в мишень, сделав n выстрелов. Вероятность попадания друга в мишень равна accuracy. Найти максимальное количество выстрелов, при котором Вам есть смысл спорить. Вам есть смысл спорить, если вероятность попадания друга в цель строго меньше 50%.

 

Класс: ShootingGallery

Метод: int profitableBet(int accuracy)

Ограничения: 1 £ accuracy £ 100.

 

Вход. Вероятность попадания друга в мишень accuracy.

 

Выход. Максимальное количество выстрелов, при котором Вам есть смысл спорить.

 

Пример входа

accuracy

40

20

50

1

 

Пример выхода

1

3

0

68

 

 

РЕШЕНИЕ

вероятность

 

Вероятность того, что друг не попадет в мишень с одного выстрела, равна 1 – accuracy /100.0. Вероятность того, что друг не попадет в мишень сделав n выстрелов, равна

(1 – accuracy /100.0)n

Ответом задачи будет такое наименьшее n, для которого указанная выше вероятность станет не больше 0.5.

 

ПРОГРАММА

 

#include <stdio.h>

 

class ShootingGallery{

public:

  int profitableBet(int accuracy)

  {

    double miss = 1 - accuracy / 100.0,prob = miss;

    int n = 0;

    while (prob > 0.5) n++,prob *= miss;

    return n;

  }

};